{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Example on how to use Python to read the output files from ASPECT.\n",
    "\n",
    "We start by importing the packages needed and the functions from the file read_files.py:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline  \n",
    "## This allows figures to be plotted \"inline\". \n",
    "## In a normal python script, you use plt.show() to see the figures, \n",
    "## or plt.savefig(\"name.pdf\") to save the figures \n",
    "## (you can also use this command in the notebooks)\n",
    "\n",
    "import numpy as np  # for mathematical functions and arrays\n",
    "import matplotlib.pyplot as plt  # for plot\n",
    "import pandas as pd # for data analysis\n",
    "from scipy.interpolate import griddata\n",
    "## We use short names for the libraries we use a lot.\n",
    "\n",
    "import io \n",
    "import os\n",
    "from subprocess import run\n",
    "\n",
    "import aspect_data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Running aspect from the notebook \n",
    "\n",
    "You may want to modify the path for the aspect build folder. \n",
    "\n",
    "A run will provide the output files that we are then reading later. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "input_file = \"convection-box.prm\"     \n",
    "aspect_bin = \"../../build/aspect\"          # Path to aspect executable\n",
    "output_dir = \"./output/\"                      # Output directory\n",
    "\n",
    "def run_aspect():\n",
    "    run(['rm','-rf',output_dir])\n",
    "    run([aspect_bin,input_file])\n",
    "    \n",
    "run_aspect()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Parameter file\n",
    "\n",
    "Sometimes, it's useful to be able to access the values for the parameters inside the parameter file, especially if you are exploring a large parameter space. \n",
    "\n",
    "You can read the parameter file with the function read_files.read_parameter_file(filename)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "param_file = output_dir+\"parameters.prm\"\n",
    "param = aspect_data.read_parameter_file(param_file)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The param variable is then a dictionnary that include all the parameters that have been defined in the original parameter file. One can then access the values using the same names than the subsections in the .prm file. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'Material averaging': ['none'], 'Model name': ['simple']}\n",
      "{'Composition viscosity prefactor': ['1.0'], 'Density differential for compositional field 1': ['0'], 'Maximum thermal prefactor': ['1.0e2'], 'Minimum thermal prefactor': ['1.0e-2'], 'Reference density': ['1'], 'Reference specific heat': ['1'], 'Reference temperature': ['0'], 'Thermal conductivity': ['1'], 'Thermal expansion coefficient': ['1'], 'Thermal viscosity exponent': ['0.0'], 'Viscosity': ['1']}\n"
     ]
    }
   ],
   "source": [
    "print(param[\"Material model\"])\n",
    "print(param[\"Material model: Simple model\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## File statistics\n",
    "\n",
    "The file statistics regroup all the statistics for everytime steps. It can be a very long file, so pandas (a package for data analysis) is the best tool to open and read it. \n",
    "The number of columns depends on your run, and is indicated as comments at the beginning of the file. The function read_statistics() will first read the comments, extracts the names of the columns and then read the file with pd.read_csv(). \n",
    "\n",
    "Here, we use an example of a run with a 1D column. All the output files are in the folder ./example. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "# we provide the name for the file statistics:\n",
    "statistics = output_dir+ \"statistics\"\n",
    "\n",
    "# we read the file with our function:\n",
    "data =  aspect_data.read_statistics(statistics)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The output of the function is a pandas dataframe, where all datas are in a big table where the columns have human-readable names. We can have a look at the table wit data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Time step number</th>\n",
       "      <th>Time (seconds)</th>\n",
       "      <th>Time step size (seconds)</th>\n",
       "      <th>Number of mesh cells</th>\n",
       "      <th>Number of Stokes degrees of freedom</th>\n",
       "      <th>Number of temperature degrees of freedom</th>\n",
       "      <th>Iterations for temperature solver</th>\n",
       "      <th>Iterations for Stokes solver</th>\n",
       "      <th>Velocity iterations in Stokes preconditioner</th>\n",
       "      <th>Schur complement iterations in Stokes preconditioner</th>\n",
       "      <th>...</th>\n",
       "      <th>Max. velocity (m/s)</th>\n",
       "      <th>Minimal temperature (K)</th>\n",
       "      <th>Average temperature (K)</th>\n",
       "      <th>Maximal temperature (K)</th>\n",
       "      <th>Average nondimensional temperature (K)</th>\n",
       "      <th>Outward heat flux through boundary with indicator 0 (\"left\") (W)</th>\n",
       "      <th>Outward heat flux through boundary with indicator 1 (\"right\") (W)</th>\n",
       "      <th>Outward heat flux through boundary with indicator 2 (\"bottom\") (W)</th>\n",
       "      <th>Outward heat flux through boundary with indicator 3 (\"top\") (W)</th>\n",
       "      <th>Visualization file name</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>256</td>\n",
       "      <td>2467</td>\n",
       "      <td>1089</td>\n",
       "      <td>0</td>\n",
       "      <td>31</td>\n",
       "      <td>33</td>\n",
       "      <td>32</td>\n",
       "      <td>...</td>\n",
       "      <td>2.531770</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>output/solution/solution-00000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0.012337</td>\n",
       "      <td>0.012337</td>\n",
       "      <td>256</td>\n",
       "      <td>2467</td>\n",
       "      <td>1089</td>\n",
       "      <td>31</td>\n",
       "      <td>32</td>\n",
       "      <td>34</td>\n",
       "      <td>34</td>\n",
       "      <td>...</td>\n",
       "      <td>8.377950</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.006876</td>\n",
       "      <td>1.006876</td>\n",
       "      <td>output/solution/solution-00001</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>0.016065</td>\n",
       "      <td>0.003728</td>\n",
       "      <td>256</td>\n",
       "      <td>2467</td>\n",
       "      <td>1089</td>\n",
       "      <td>20</td>\n",
       "      <td>31</td>\n",
       "      <td>33</td>\n",
       "      <td>33</td>\n",
       "      <td>...</td>\n",
       "      <td>15.479564</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.023201</td>\n",
       "      <td>1.023201</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>0.018083</td>\n",
       "      <td>0.002018</td>\n",
       "      <td>256</td>\n",
       "      <td>2467</td>\n",
       "      <td>1089</td>\n",
       "      <td>15</td>\n",
       "      <td>30</td>\n",
       "      <td>32</td>\n",
       "      <td>32</td>\n",
       "      <td>...</td>\n",
       "      <td>22.948809</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.048978</td>\n",
       "      <td>1.048978</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>0.019444</td>\n",
       "      <td>0.001361</td>\n",
       "      <td>256</td>\n",
       "      <td>2467</td>\n",
       "      <td>1089</td>\n",
       "      <td>13</td>\n",
       "      <td>29</td>\n",
       "      <td>31</td>\n",
       "      <td>31</td>\n",
       "      <td>...</td>\n",
       "      <td>30.430303</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.084120</td>\n",
       "      <td>1.084120</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   Time step number  Time (seconds)  Time step size (seconds)  \\\n",
       "0                 0        0.000000                  0.000000   \n",
       "1                 1        0.012337                  0.012337   \n",
       "2                 2        0.016065                  0.003728   \n",
       "3                 3        0.018083                  0.002018   \n",
       "4                 4        0.019444                  0.001361   \n",
       "\n",
       "   Number of mesh cells  Number of Stokes degrees of freedom  \\\n",
       "0                   256                                 2467   \n",
       "1                   256                                 2467   \n",
       "2                   256                                 2467   \n",
       "3                   256                                 2467   \n",
       "4                   256                                 2467   \n",
       "\n",
       "   Number of temperature degrees of freedom  \\\n",
       "0                                      1089   \n",
       "1                                      1089   \n",
       "2                                      1089   \n",
       "3                                      1089   \n",
       "4                                      1089   \n",
       "\n",
       "   Iterations for temperature solver  Iterations for Stokes solver  \\\n",
       "0                                  0                            31   \n",
       "1                                 31                            32   \n",
       "2                                 20                            31   \n",
       "3                                 15                            30   \n",
       "4                                 13                            29   \n",
       "\n",
       "   Velocity iterations in Stokes preconditioner  \\\n",
       "0                                            33   \n",
       "1                                            34   \n",
       "2                                            33   \n",
       "3                                            32   \n",
       "4                                            31   \n",
       "\n",
       "   Schur complement iterations in Stokes preconditioner  ...  \\\n",
       "0                                                 32     ...   \n",
       "1                                                 34     ...   \n",
       "2                                                 33     ...   \n",
       "3                                                 32     ...   \n",
       "4                                                 31     ...   \n",
       "\n",
       "   Max. velocity (m/s)  Minimal temperature (K)  Average temperature (K)  \\\n",
       "0             2.531770                      0.0                      0.5   \n",
       "1             8.377950                      0.0                      0.5   \n",
       "2            15.479564                      0.0                      0.5   \n",
       "3            22.948809                      0.0                      0.5   \n",
       "4            30.430303                      0.0                      0.5   \n",
       "\n",
       "   Maximal temperature (K)  Average nondimensional temperature (K)  \\\n",
       "0                      1.0                                     0.5   \n",
       "1                      1.0                                     0.5   \n",
       "2                      1.0                                     0.5   \n",
       "3                      1.0                                     0.5   \n",
       "4                      1.0                                     0.5   \n",
       "\n",
       "   Outward heat flux through boundary with indicator 0 (\"left\") (W)  \\\n",
       "0                                                0.0                  \n",
       "1                                                0.0                  \n",
       "2                                                0.0                  \n",
       "3                                                0.0                  \n",
       "4                                                0.0                  \n",
       "\n",
       "   Outward heat flux through boundary with indicator 1 (\"right\") (W)  \\\n",
       "0                                                0.0                   \n",
       "1                                                0.0                   \n",
       "2                                                0.0                   \n",
       "3                                                0.0                   \n",
       "4                                                0.0                   \n",
       "\n",
       "   Outward heat flux through boundary with indicator 2 (\"bottom\") (W)  \\\n",
       "0                                          -1.000000                    \n",
       "1                                          -1.006876                    \n",
       "2                                          -1.023201                    \n",
       "3                                          -1.048978                    \n",
       "4                                          -1.084120                    \n",
       "\n",
       "   Outward heat flux through boundary with indicator 3 (\"top\") (W)  \\\n",
       "0                                           1.000000                 \n",
       "1                                           1.006876                 \n",
       "2                                           1.023201                 \n",
       "3                                           1.048978                 \n",
       "4                                           1.084120                 \n",
       "\n",
       "          Visualization file name  \n",
       "0  output/solution/solution-00000  \n",
       "1  output/solution/solution-00001  \n",
       "2                             NaN  \n",
       "3                             NaN  \n",
       "4                             NaN  \n",
       "\n",
       "[5 rows x 21 columns]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can then look at the evolution of some of the statistics with time: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f3b5ff70ef0>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# using the plot function embedded in the panda frame:\n",
    "data.plot(\"Time (seconds)\", \"RMS velocity (m/s)\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Time (s)')"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# or using the pyplot functions (allows more flexibility)\n",
    "\n",
    "fig, ax = plt.subplots()\n",
    "\n",
    "ax.plot(data[\"Time (seconds)\"], data[\"RMS velocity (m/s)\"], label=\"RMS velocity\")\n",
    "ax.plot(data[\"Time (seconds)\"], data[\"Max. velocity (m/s)\"], label=\"Max velocity\")\n",
    "ax.legend()\n",
    "ax.set_xlabel(\"Time (s)\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Visualization files\n",
    "\n",
    "The statistics file includes when visualization files have been created. If they have been written as gnuplot files, then we can read them and plot them. \n",
    "\n",
    "In the example case, the grid is a column of 1 cell width. So the output can be plotted as 1D variable. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'output/solution/solution-00000.0000.gnuplot'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-32-e12978456e6a>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      6\u001b[0m \u001b[0mvisu_times\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Time (seconds)\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maspect_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_gnuplot_visu\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvisu_files\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\".0000.gnuplot\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      9\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/Research/aspect_dev/aspect/contrib/python/aspect_data.py\u001b[0m in \u001b[0;36mread_gnuplot_visu\u001b[0;34m(fname)\u001b[0m\n\u001b[1;32m     42\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     43\u001b[0m     \u001b[0;31m# Look for the line that starts with \"# <\", which contains all the names of variables.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     45\u001b[0m         \u001b[0mi\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     46\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0mheader_read\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'output/solution/solution-00000.0000.gnuplot'"
     ]
    }
   ],
   "source": [
    "# we remove the values from data with NaN in the visualization file name column\n",
    "data = data.dropna(subset=[\"Visualization file name\"])\n",
    "\n",
    "# we store the values for the file names and the associated time. \n",
    "visu_files = data[\"Visualization file name\"].values\n",
    "visu_times = data[\"Time (seconds)\"].values\n",
    "\n",
    "df = aspect_data.read_gnuplot_visu(visu_files[0]+\".0000.gnuplot\")\n",
    "print(df.head())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Unstructured grid \n",
    "\n",
    "The points are not always on a structured grid, so tricontourf may be the best way to plot the temperature field for example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "ename": "FileNotFoundError",
     "evalue": "[Errno 2] No such file or directory: 'output/solution/solution-00000.0000.gnuplot'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mFileNotFoundError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-33-6f62ee5ca73e>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      5\u001b[0m     \u001b[0;31m#print(time, file)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m     \u001b[0mfile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfile\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\".0000.gnuplot\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m     \u001b[0mdf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0maspect_data\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_gnuplot_visu\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      8\u001b[0m     \u001b[0;31m#df = df[df[\"x\"]==0.5]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      9\u001b[0m     \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"x\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"y\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"T\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/Research/aspect_dev/aspect/contrib/python/aspect_data.py\u001b[0m in \u001b[0;36mread_gnuplot_visu\u001b[0;34m(fname)\u001b[0m\n\u001b[1;32m     42\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     43\u001b[0m     \u001b[0;31m# Look for the line that starts with \"# <\", which contains all the names of variables.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 44\u001b[0;31m     \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     45\u001b[0m         \u001b[0mi\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     46\u001b[0m         \u001b[0;32mwhile\u001b[0m \u001b[0mheader_read\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m<\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'output/solution/solution-00000.0000.gnuplot'"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x216 with 5 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1, 5, sharey=True, sharex=True, figsize=[15,3])\n",
    "\n",
    "i=0\n",
    "for time, file in zip(visu_times[:-2:2], visu_files[:-2:2]):\n",
    "    #print(time, file)\n",
    "    file = file+\".0000.gnuplot\"\n",
    "    df = aspect_data.read_gnuplot_visu(file)\n",
    "    #df = df[df[\"x\"]==0.5]\n",
    "    x, y, t = df[\"x\"].values, df[\"y\"].values, df[\"T\"].values\n",
    "    ax[i].tricontourf(x, y, t, 15, vmin=0, vmax=1)\n",
    "    i += 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Structured grid \n",
    "\n",
    "However, for plotting the velocities, it may be easier to interpolate on a structured grid, using griddata from scipy.\n",
    "\n",
    "This also allows to use streamplots, for example. \n",
    "\n",
    "In that case, we choose where the points will be interpolated, which may be better in the case of very asymetric x/y axis (for example if one axis in log scale and not the other)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0, 1.0, 0.0, 1.0)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()\n",
    "\n",
    "# define grid.\n",
    "xi = np.linspace(0, 1, 100)\n",
    "yi = np.linspace(0, 1, 100)\n",
    "xi, yi = np.meshgrid(xi, yi)\n",
    "\n",
    "# interpolate the values on the grid for the temperature.\n",
    "Ti = griddata((x, y), t, (xi, yi))\n",
    "# contour the gridded data, plotting dots at the nonuniform data points.\n",
    "#CS = plt.contour(xi, yi, Ti, 15, linewidths=0.5, colors='k')\n",
    "CS = ax.contourf(xi, yi, Ti, 15,\n",
    "                  vmax=1., vmin=0.)\n",
    "fig.colorbar(CS, ax=ax, ticks=[0, 0.5, 1])\n",
    "\n",
    "# grid the velocities\n",
    "vx, vy = df[\"velocity_x\"].values, df[\"velocity_y\"].values\n",
    "Vxi = griddata( (x, y), vx, (xi, yi))\n",
    "Vyi = griddata( (x, y), vy, (xi, yi))\n",
    "ax.streamplot(xi, yi, Vxi, Vyi, density=[0.5,0.5], color='k')\n",
    "\n",
    "ax.axis('equal')  # force the x and y axes to have the same scale\n",
    "ax.set_xlim([0,1])\n",
    "ax.set_ylim([0,1])\n",
    "ax.axis('off') # remove the axes and ticks"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
